Go method receiver
Pointer か value か
Interface を実装しているかどうかは、pointer と value それぞれで判断される
pointer はしているけど、value はしていない、ということがあり得る
T に呼び出せるのは (t T) func () だけ
*T に呼び出せるのは (t *T) func () と (t T) func () の両方
つまり (t *T) は *T にしか呼び出せない
なので interface 実装でこのようなことがおきる
Stringer を実装するときに (t *T) にしてしまうと、value にたいして呼び出したら、(t *T) がは呼び出されない
method receiver の一貫性について